In a disc drive, data is stored on one or more discs. A disc is typically divided into a plurality of generally parallel disc tracks, which are arranged concentrically with one another and perpendicular to the disc radius. Each track is further broken down into a plurality of sectors, which further aid in locating information. Each sector is a data portion of a track that stores data. Typically, the disc is a magnetic recording medium that uses single-state domains and magnetic transition domains to store bits corresponding to a “1” or “0” on the disc surface. Usually, a magnetic domain contains at least 100 thermally stable grains or magnetic particles.
The data is accessed, or stored and retrieved, by a transducer or “head” that is positioned over a desired track by an actuator arm. Typically, when an operation (read or write) is sent from a host (such as a computer) to the disc drive, a controller converts a logical block address (LBA) received from the host to a physical block address (PBA). Next, the physical track, head and sector information, which includes the number of sectors to be accessed from a destination track, are calculated based on the PBA. A seek operation is then performed and sectors falling on the same track are usually accessed within one disc revolution.
To maintain data integrity and high data transfer rates, read and write elements are maintained as close as practicable over the center of each track during read and write operations. For example, even if data are properly written in a centered relationship over a selected track, attempting to subsequently read the data while the head offset from the center of the track may result in an unacceptable number of read errors, due to the inability of the read element to properly detect the written data, as well as the potential interference from the selective magnetization of an adjacent track. More significantly, writing data too far away from the track center can prevent subsequent recovery when the head is centered over the track, and can also corrupt data stored on the adjacent track.
Thus, disc drives typically utilize positioning thresholds to minimize the occurrence of read errors and data overwriting. These thresholds are usually expressed as a percentage of track width and define zones about the center of the tracks in which safe reading and writing can take place. For example, a typical read threshold might be established at +/−10% of the track width, so that read operations are enabled only while the head is positioned less than 10% of the track width away from the center of the track. Similarly, a typical write threshold might be established at +/−17%, so that write operations are enabled only while the head is positioned less than 17% away from the center of the track. During read and write operations, the servo system continually monitors the position of the respective elements and provides an error signal if the threshold is reached or exceeded. The thresholds are determined during disc drive design and are intended to balance various factors including track density, acceptable read error rates, expected variations in the sizes of the read and write elements, and acceptable data transfer rates.
Various other conditions can cause errors when writing information to a disc. These conditions include no write current, an open or shorted head, low write data frequency and low power supply. When these conditions are detected, one or more error signals are generated. For each error signal encountered, the current operation is interrupted and a retry operation is attempted. Performing a retry for each sector having an error signal results in reduced drive performance.
During a read operation, it is common to encounter disc read-errors when the disc drive transfers data from the disc to a buffer RAM inside the disc drive before data is sent to the host. Therefore, error correction techniques are typically used to correct any read errors in the data that is sent to the host. However, ever-increasing disc drive densities increase the number of errors encountered. Some errors occur momentarily due to system noise, thermal conditions or external vibrations. Small magnetic domains have a propensity to reverse their magnetic state due to these conditions. These and other errors may propagate to form large errors (growth errors) under certain conditions that can ultimately cause long correction times and unrecoverable errors.
In current systems, growth errors are prevented by correcting errors in a sector (known as an “error sector”) that has more errors than a threshold level. Threshold levels below the maximum correction capability are used to prevent growth errors. When an error sector is encountered during a read operation, the controller stops the read operation and applies a retry routine that re-reads the error sector into the buffer memory. Then, the error sector is corrected and written back to the disc during the retry routine. Stopping the read operation for each error sector encountered and performing a retry routine on the error sector results in extra revolutions for the read operation, which increases overhead. Alternatively, an entire data track can be written into the data buffer and written back to the disc to reduce disc revolutions in a retry routine. However, this dramatically increases the data buffer size and causes retry routines to be time consuming and expensive since every sector has to be read into the data buffer no matter whether the data sector has errors or not. Various embodiments of the present invention address these problems, and offer other advantages over the prior art.